package controllers;

import model.TeremnyilvantartasModel;
import views.TeremnyilvantartasEsemenyNaploView;
import views.TeremnyilvantartasFejlecView;
import views.TeremnyilvantartasFoView;
import views.TeremnyilvantartasNezetView;

public class TeremNyilvantartasMainController {

	private TeremnyilvantartasEsemenyNaploView esemenyNaploView;
	private TeremnyilvantartasNezetView nezetView;
	private TeremnyilvantartasFoView foView;
	private TeremnyilvantartasFejlecView fejlecView;
	private TeremnyilvantartasModel model;
	private TeremnyilvantartasEsemenyNaploController esemenyNaploController;
	private TeremnyilvantartasNezetController nezetController;
	private TeremnyilvantartasFejlecController fejlecController;

	public TeremNyilvantartasMainController(
			TeremnyilvantartasEsemenyNaploView esemenyNaploView,
			TeremnyilvantartasNezetView nezetView,
			TeremnyilvantartasFoView foView,
			TeremnyilvantartasFejlecView fejlecView,
			TeremnyilvantartasModel model) {
		this.esemenyNaploView = esemenyNaploView;
		this.nezetView = nezetView;
		this.foView = foView;
		this.fejlecView = fejlecView;
		this.model = model;
		this.esemenyNaploController = new TeremnyilvantartasEsemenyNaploController(
				this.esemenyNaploView, model);
		this.nezetController = new TeremnyilvantartasNezetController(
				this.nezetView, this.foView.getFoglalasView()
						.getScrolledComposite(), model, this,
				TeremnyilvantartasNezetTipus.TEREM);
		this.fejlecController = new TeremnyilvantartasFejlecController(
				this.fejlecView, this.nezetController, model);
	}

	public void redrawAll() {
		esemenyNaploController.refreshEsemenyNaplo();
		nezetController.redrawTeremOnUiViews(TeremnyilvantartasNezetTipus
				.valueOf(fejlecView.getCmbNezetTipus().getText()));
	}

	public void redrawEsemenyNaplo() {
		esemenyNaploController.refreshEsemenyNaplo();
	}

	public void refreshFejlecTeremLista() {
		fejlecController.refreshLista();
	}

	public TeremnyilvantartasEsemenyNaploView getEsemenyNaploView() {
		return esemenyNaploView;
	}

	public TeremnyilvantartasNezetView getNezetView() {
		return nezetView;
	}

	public TeremnyilvantartasFoView getFoView() {
		return foView;
	}

	public TeremnyilvantartasFejlecView getFejlecView() {
		return fejlecView;
	}

	public TeremnyilvantartasModel getModel() {
		return model;
	}

	public TeremnyilvantartasEsemenyNaploController getEsemenyNaploController() {
		return esemenyNaploController;
	}

	public TeremnyilvantartasNezetController getNezetController() {
		return nezetController;
	}

	public TeremnyilvantartasFejlecController getFejlecController() {
		return fejlecController;
	}

}
